// 引入api接口
import { login, getInfo, getUserDetailById } from '@/api/user'
// 引入封装好的Cookies将数据存入
import { getToken, setToken, removeToken } from '@/utils/auth'
// 引入清空路由
import { resetRouter } from '@/router'
const state = {
  token: getToken() || '', // 从Cookies拿数据，没有则为空
  userInfo: {},
  total: 0
}
// mutations修改数据
const mutations = {
  setToken(state, value) { // 获取token
    state.token = value
  },
  setUserInfo(state, data) { // 获取用户信息
    state.userInfo = data
  },
  removeToken() { // 清空token
    removeToken()
  },
  removeUserInfo(state) { // 清空用户信息
    state.userInfo = {}
  },
  setTotal(state, data) {
    state.total = data
  }
}
// 发送请求
const actions = {
  async loginActions(store, data) {
    const res = await login(data) // 发送登录请求
    console.log(19, res)
    setToken(res)// 将token存入Cookies
    store.commit('setToken', res)
  },
  async getUserInfo(store) { // 获取用户基本信息
    const res = await getInfo()
    const Detail = await getUserDetailById(res.userId)// 获取图片
    store.commit('setUserInfo', { // 拼接图片数据
      ...res,
      ...Detail
    })
  },
  logout(store) {
    resetRouter()// 退出的时候清空之前路由
    store.commit('removeToken')
    store.commit('removeUserInfo')
  }

}
// 暴露导出
export default {
  // 独立命名空间
  namespaced: true,
  state,
  mutations,
  actions
}
